/*请写一个程序，在输入的n个正整数中，判断能否找到三个数总和为m，这三个数可以重复(即n个数中的每个数都可以使用多次)。
如果可以找到，则输出为Yes。若找不到则输出No。输入的第一行为n和m两个整数，第二行为n个数字。
其中n<=1000，数字绝对值不超过2000。*/
#include<bits/stdc++.h>
using namespace std;
int main(){
  	int n,m,i,j,w,f[1009];
  	cin>>n>>m;
  	bool flag=0;
  	for(i=0;i<n;i++){
  		cin>>f[i];
	}
	for(i=0;i<n;i++) if(f[i]<m)
		for(j=0;j<=i;j++) if(f[i]+f[j]<m)
			for(w=0;w<=j;w++)
				if(f[i]+f[j]+f[w]==m){
					cout<<"Yes"<<endl;
					return 0;
				}
	cout<<"No"<<endl;
	return 0;
}